using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ObviousCode.Stately;

namespace ObviousCode.Stately.Compiler.Validation
{
	public class ExpectationValidatorContext
	{
        public ExpectationValidatorContext() { Errors = new List<Expectations.ExpectationValidation.ValidationError>(); }
		
		public Exception Exception { get; set; }
		
		public Action<ExpectationValidatorContext> Callback { get; set; }

        public string CodeFileName { get; set; }

        public ICSharpCode.NRefactory.CSharp.SyntaxTree ParsedSyntaxTree { get; set; }

        public string DataContext { get; set; }

        public string Namespace { get; set; }

        public ICSharpCode.NRefactory.CSharp.NamespaceDeclaration NamespaceElement { get; set; }

        public string Classname { get; set; }

        public ICSharpCode.NRefactory.CSharp.TypeDeclaration ClassElement { get; set; }        

        public List<Expectations.DefinedStateTransition> DefinedTransitions { get; set; }

        public List<Expectations.ExpectationValidation.ValidationError> Errors { get; set; }
    }
}